04. 判断仓库的状态
在命令行中使用 Git 可能会有点挑战,因为它有点类似于
黑箱 - 维基百科 - 英
|
黑箱理论 - 百度百科 - 中
。如何判断你是否需要运行某些 Git 命令? Git 是否已经准备好运行某个命令? 如果我运行了一个命令,但我认为它并未被执行,我该如何进行验证呢?
git status
命令可以回答所有这些问题!
$ git status
git status
是了解 Git 的核心所在。它将告诉我们 Git 正在考虑什么,以及 Git 所看到的我们仓库的状态。当你第一次使用 Git 时,你应该一直都要使用
git status
命令!说真的,你应该习惯于运行任何其他命令之后,都运行下该命令。这样可以帮助你了解 Git 的工作原理,并避免你对文件 / 仓库状态做出不正确的推论。
克隆仓库的状态
SOLUTION:
On branch masterYour branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
git status 输出结果
git status
命令将显示很多信息,具体取决于你的文件状态、工作目录和仓库。但是你不需要过于关心这些内容…只需运行
git status
,它将显示你需要知道的信息。
终端应用的 GIF 动画。在
course-git-blog-project
项目中运行
git status
命令。
git status 说明
正如你在上面的 GIF 中所看到的,在
course-git-blog-project
项目中运行
git status
将产生以下输出结果:
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
输出结果告诉了我们两条信息:
-
On branch master– 这部分告诉我们 Git 位于master分支上。你已在术语表中获取了对分支的介绍,那么这是"master"分支(也就是默认分支)。我们将在第 5 节课深入了解分支。
-
Your branch is up-to-date with 'origin/master'.– 因为我们使用git clone从另一台计算机上复制了此仓库,因此这部分告诉我们项目是否与所复制的仓库保持同步状态。我们不会在其他计算机上处理该项目,因此这一行可以忽略。 -
nothing to commit, working directory clean– 表示没有任何待定的更改。
可以将这一输出结果看作“休息状态(resting state)”(这并不是官方解释,只是我喜欢这么理解!)。因为没有新的文件、没有对文件作出更改、暂存区没有任何需要 commit 的内容……没有更改或操作,因此我喜欢将其称为休息状态。
这就是在已经具有 commit 的仓库中运行
git status
之后的状态。我们切换到
new-git-project
项目,看看
git status
输出结果是什么。
SOLUTION:
On branch masterInitial commit
nothing to commit (create/copy files and use "git add" to track)
终端应用的 GIF 动画。
git status
命令在
new-git-project
项目中运行。
💡 Git v2.14 版本的改变 💡
在 Git version 2.14 版本中,在一个空目录中运行
git status命令的结果中,将 "Inital commit"(初始提交)的用词,改为更清晰明了的 "No commits yet"(尚未有任何提交),所以输出将会是:
On branch master No commits yet nothing to commit (create/copy files and use "git add" to track)
新仓库中的 git status 说明
这是在
new-git-project
项目中运行
git status
后的输出结果:
$ git status
On branch master
Initial commit
nothing to commit (create/copy files and use "git add" to track)
澄清一下,我尚未在我的项目中提交任何 commit。如果你提交了 commit,那么你的输出结果应该看起来和 course-git-blog-project 项目中的完全一样。
如果你将此结果与 course-git-blog-project 项目的
git status
输出结果进行对比,你会发现它们很相似。不同之处在于这个输出结果包含
Initial commit
。这有点让人困惑,因为此仓库中尚无任何 commit!我们还未学习如何进行 commit,但是当我们进行学习时,我们将能够提交初始 commit。
想要提前了解下下节课的内容,同时证明此仓库尚无任何 commit?我就知道你想试试!试着运行命令
git log
,并查看其输出结果:
$ git log
fatal: your current branch 'master' does not have any commits yet
看起来有点可怕。“Fatal(致命)”?幸运的是,这仅仅意味着 Git 程序正在退出,因为它没有任何需要完成的任务。Git 将此情况视为错误,但这并不是一个问题。因为我们知道自己尚未在此仓库中提交任何 commit。
从输出结果可以清晰地看出没有任何 commit!
我们刚刚简单地了解了
git status
命令。
git status
的输出结果将有所不同,具体取决于文件是否被添加/删除/修改、暂存索引的情况,以及仓库的状态。我们将在整个课程中持续使用
git status
命令,因此请熟练掌握该命令!
git status 小结
git status
命令将显示仓库的当前状态。
$ git status
我一直在强调这个命令非常的重要,因为这是你第一次使用 Git。该命令将:
-
告诉我们已在工作目录中被创建但 Git 尚未开始跟踪的新文件
-
Git 正在跟踪的已修改文件
-
以及我们将在这门课程的后续阶段学习的很多其他信息 ;-)。
拓展链接
-
查看文件的状态 - 英 | 中